package com.zhl.exception;

/*
掌握自定义异常，以及异常的作用
 */
public class Test1 {
    public static void main(String[] args) {
        //需求保存一个年龄
//        try {
//            saveAge(200);
//            System.out.println("底层代码执行成功！");
//        } catch (Exception e) {
//            e.printStackTrace();
//            System.out.println("底层出现了BUG！");
//        }

        try {
            saveAge2(200);
            System.out.println("saveAge2底层代码执行成功！");
        } catch (AgeIllegalException e) {
            e.printStackTrace();
            System.out.println("saveAge2底层出现了BUG！");
        }

    }

    //编译时异常
    public static void saveAge2(int age) throws AgeIllegalException{
        if (age > 0 && age < 150) {
            System.out.println("保存年龄成功"+age);
        }else{
            //用一个异常对象封装这个问题
            //throw 抛出去这个异常对象
            //throws 用在方法上，抛出方法内部的异常。
            throw new AgeIllegalException("年龄不合法,您输入的年龄为"+age);
        }

    }











    //运行时异常
    public static void saveAge(int age){
        if (age > 0 && age < 150) {
            System.out.println("保存年龄成功"+age);
        }else{
            //用一个异常对象封装这个问题
            throw new AgeIllegalRuntimeException("年龄不合法,您输入的年龄为"+age);
        }

    }


}
//try {
//            int a = 10 / 0;
//            System.out.println(a);
//        } catch (ArithmeticException e) {
//            System.out.println("除数不能为0");
//        }